1. Field of the Invention
This invention relates generally to the field of testing a system or a solution. More particularly, the invention relates to automatically generating system test libraries for testing an end-to-end solution consisting of one or more devices in a heterogeneous system consisting of devices of different types.
2. Background and Description of the Related Art
Testing a system consisting of a network topology of devices can be challenging, because the tests can be dependent upon the individual devices 108 as well as the overall topology chosen. There is a need for a general solution to the problem of generating system test libraries to enable testing of the devices within a given topology by providing a layer of abstraction for device specific command and automating the system library generation so that any change in the device parameters or parameter values may be handled effortlessly.
As devices under test are manufactured by various manufacturers, a standard has been developed for such management agents and management information databases. For example, the Simple Networking Management Protocol (SNMP) is a protocol used for network management of various network devices. SNMP also includes a set of commands that are understood by the network devices. High-level commands (SNMP) can be sent from console to agents. These SNMP commands include commands to set configuration and testing parameters, to set operating values or limits in a device, and to perform some task, such as to notify the console when a particular event occurs and such as a limit being exceeded. However, non-SNMP compliant devices (the devices which provide Command Line Interface (CLI)/Shell Level commands interfaces etc.) may not provide same or similar set of standard commands. Therefore, there is a need for an abstraction layer of commands to isolate the testing framework from the actual command implementations for a particular task to be performed. A mapping of abstract and actual commands may be stored in the testing framework and this mapping is used for command translation at the time of the execution of the system or solution tests.
The network administrator can also manually enter SNMP/CLI/Shell Level commands using a CLI on console.
A device could be tested prior to its productive use by inserting it into a testing framework at the test facility. The test engineer can manually enter SNMP/CLI/Shell Level commands from a console to test operating of the device. These commands could be saved into a script file that is later re-played for each new device or a group of devices inserted into the testing framework. However, manual testing can be tedious and prone to errors. Each new device tested has a different range of parameters or attributes assigned to it, therefore, the script files have to be edited to add/update the device-specific parameters or attributes and their values for each device under test (DUT).
FIG. 1a illustrates the prior art. The prior art includes a written test plan 101 containing one or more test suites 102 which contain one or more test cases 103. Device Interface Logic 104 known to the test case designer helps to determine how to execute the test. The test bed 105 consists of a unified user interface 106 that executes tests 107 against a known DUT 108.
As illustrated in FIG. 1b, in a network test, the test script executed by a user requires knowledge of the actual device specific commands 109 for each DUT 108, including syntax, format and address information. The device generates a response 110 when a command is executed.
Service providers/large enterprises usually provide solutions/services employing systems comprising different types of devices from multiple vendors. Because of disparate device commands and responses, it is a challenge in testing the entire network solution. This is true even if each vendor provides its own test suite (device library) for testing its components. There are solutions today that try to overcome this problem by providing a mechanism for performing end-to-end testing using vendor-supplied device libraries. The drawback to this approach is that the user interface and configuration of each vendor's solution is different. Developing system libraries for a service provider deploying hundreds of different products from different vendors can be difficult.
Existing testing products do not provide for a unified user interface to manage and enable testing of different products from multiple vendors. This forces users to learn new interfaces for each product (a device or a system of devices), making testing less efficient and more error-prone.
This invention provides a testing framework that automatically generates series of test commands (i.e. system test library) for the devices under test for given topologies and testing scenario by reading various configurations, inputs, and device characteristics.